package main

import (
	"fmt"
	"os"
)

/*
定义一些初始值：
username = "root"
passwd = "123456"
balance = 1000
实现一个简易的atm存取款系统
1.登录成功才能进入系统
	选择：
	1.存钱
	2.取钱 -- 取钱的金额不能大于余额
	3.查询余额
	4.退出整个系统
2.登陆失败有三次重试机会

把所有功能封装成为函数
*/

// 定义全局变量
var rightname = "root"
var rightpasswd = "123456"
var balance = 1000
var money int //流动金额

// 登录函数
func login() bool {
	var username string
	var passwd string
	chance := 3 //重新登录剩余机会
	for chance >= 0 {
		fmt.Println("请输入用户名：")
		fmt.Scanln(&username)
		fmt.Println("请输入密码：")
		fmt.Scanln(&passwd)
		if username == rightname && passwd == rightpasswd {
			fmt.Println("登录成功")
			return true
		} else {
			fmt.Printf("用户名或密码错误,还剩%d次机会\n", chance)
			chance--
		}
	}
	fmt.Println("登录失败")
	return false
}

// 取钱函数
func draw() {
	fmt.Println("请输入要取出的金额：")
	fmt.Scanln(&money)
	if money <= balance {
		balance = balance - money
		fmt.Printf("取款成功，当前的余额为：%d\n", balance)
	} else {
		fmt.Println("取款失败，余额不足")
	}
}

// 存钱函数
func save() {
	fmt.Println("请输入要存入的金额：")
	fmt.Scanln(&money)
	balance = balance + money
	fmt.Printf("存款成功，当前的余额为：%d\n", balance)
}

// 查看余额函数
func check() {
	fmt.Printf("当前的余额为：%d\n", balance)
}

// 退出系统函数
func out() {
	fmt.Println("退出成功")
	os.Exit(0) //退出程序
}

// 主函数
func main() {
	var choice int //选择功能
	fmt.Println("-----atm存取系统-----")
	result := login()
	if result {
		for {
			fmt.Printf("选择功能：\n" +
				"1.存钱 -- 按1 \n" +
				"2.取钱 -- 按2 \n" +
				"3.查询余额 -- 按3 \n" +
				"4.退出系统 -- 按4 \n")
			fmt.Scanln(&choice)
			switch choice {
			case 1:
				draw()
			case 2:
				save()
			case 3:
				check()
			case 4:
				out()
			default:
				fmt.Println("非法输入，请重新选择功能")
			}
		}
	}
}
